class sPanel;
class sButton;
class sLabel;
class sForm;


class GUI_engine
{
	friend class sPanel;
	friend class sButton;
	friend class sLabel;
	friend class sForm;

	TFont *font;
	float panel_r,panel_g,panel_b;
	float back_r,back_g,back_b;
	float text_r,text_g,text_b;
	float select_r,select_g,select_b;

#ifdef SIGEL_SOUND
	Channel *gui_ch;
	Sound *bclick;
	Sound *bnav;
#endif

public:
	GUI_engine();
	GUI_engine(const char *style);

	~GUI_engine();

	void SetPanelColor(float r,float g,float b);
	void SetPanelColor(int r,int g,int b);

	void SetTextColor(float r,float g,float b);
	void SetTextColor(int r,int g,int b);

	void SetSelectColor(float r,float g,float b);
	void SetSelectColor(int r,int g,int b);

	void SetBackFaceColor(float r,float g,float b);
	void SetBackFaceColor(int r,int g,int b);

	void SetFont(TFont *fnt);

	void SetActive();

	bool isUseFont();
	void FontStartDraw();
	void FontEndDraw();

#ifdef SIGEL_SOUND
	void SetClickSound(Sound *clicksnd);
	void SetNavSound(Sound *clicksnd);

	void PlayClickSound();
	void PlayNavSound();
#endif
};

GUI_engine *active_gui_engine;